from flask import Flask, session
import os

app = Flask(__name__)
# 要使用session，必须提供一个24位的SECRET_KEY
app.config['SECRET_KEY'] = os.urandom(24)

'''
cookie的作用是保存用户信息在客户端。
HTTP是无状态的，服务器为了区分用户，会生成cookie返回给浏览器，浏览器会自动保存cookie，下次请求时会自动发送cookie，用户不用管。

因为cookie保存在本地，有被截获和串改的可能。

session的作用也是保存用户信息，保存在服务器
服务器根据用户登录请求，保存用户信息到session，生成一个与之对应的sessionID，然后将sessionID保存在cookie中返回给浏览器，
浏览器请求时自动带cookie，服务器获取sessionID，然后从session中获取用户信息。

因为session保存在服务器，因此安全，但是服务器压力大

flask中的用户信息保存在session中，只不过session会经过加密，然后装入到cookie中，保存在客户端。
'''


@app.route('/')
def hello_world():
    session['username'] = 'liqiang'
    return 'Hello World!'


@app.route('/get/')
def get():
    print(session['username'])
    print(session.get('username'))
    return 'success'


@app.route('/delete/')
def delete():
    print(session.get('username'))
    session.pop('username')
    print(session.get('username'))
    return 'success'


@app.route('/clear/')
def clear():
    print(session.get('username'))
    session.clear()
    print(session.get('username'))
    return 'success'


if __name__ == '__main__':
    app.run(debug=True)
